<html>
<head>
<title>Remake de Fruity Frank - Version 0.12</title>
<style type="text/css">
span {
	font-family: 'Courier New';
	font-size: 10pt;
	color: #000000;
}
.SpanClass0 {
	color: #808080;
}
.SpanClass3 {
	color: #008080;
}
.SpanClass5 {
	font-weight: bold;
	color: #0000FF;
}
.SpanClass7 {
	color: #808080;
}
.SpanClass10 {
	font-weight: bold;
	color: #000080;
}
.SpanClass11 {
}
</style>
</head>
<body bgcolor="#FFFFFF">
<h2>Remake (parcial) de Fruity Frank... 12 - Una pantalla de presentaci&oacute;n</h2>
<p align="right">(Volver al <a href="doc.html">&iacute;ndice</a>) </p>

<p>Nuestro juego, a pesar de estar apenas empezando a ser un borrador de lo que tendr&aacute; que ser finalmente, ocupa ya cerca de 230 l&iacute;neas de c&oacute;digo. Si esto sigue creciendo de esta manera, dentro de poco empezar&aacute; a ser dif&iacute;cil de manejar. Va siendo el momento de empezar a hacerlo m&aacute;s modular.</p>

<p>Como primer acercamiento a esa modularidad, vamos a crear una pantalla de presentaci&oacute;n para el juego, y esta pantalla estar&aacute; en una nueva funci&oacute;n, independiente de &quot;main&quot;. La pantalla de presentaci&oacute;n mostrar&aacute; un animaci&oacute;n sencilla (por ejemplo, un texto rebotando en la pantalla) hasta que pulsemos una cierta tecla (como la barra espaciadora). En ese momento ser&aacute; cuando realmente comience la partida.</p>

<p>De este modo, ahora el &quot;main&quot; comenzar&aacute; as&iacute;:</p>


<pre><code>int main (int argc, char** argv)
{

    // Antes de nada, pantalla de presentacion
    presentacion();
    ...</code></pre>

<p>Y esta funci&oacute;n &quot;presentacion&quot; podr&aacute; ser de tipo &quot;void&quot; (no va a devolver ning&uacute;n valor), y deber&aacute; comenzar por inicializar la pantalla y declarar sus propias variables locales (entre ellas puede estar incluso el tama&ntilde;o de la pantalla, que ya estaban declaradas dentro de &quot;main&quot; y que se repetir&aacute;n aqu&iacute; a no ser que las hagamos &quot;variables globales&quot;).</p>    
<pre><code>void presentacion()
{
    // Limites de la pantalla
    int xIniPantalla = 12, xFinPantalla = 638;
    int yIniPantalla = 82, yFinPantalla = 448;

    // Intentamos inicializar SDL
    SDLA_inicializar(640,480,24);
    ...</code></pre>
    
<p>Ahora, la llamada a &quot;SDLA_inicializar&quot; ya no deber&aacute; aparecer en &quot;main&quot;, o habr&aacute; pasos que estaremos dando dos veces, y obtendremos mensajes de error.</p>

<p>En cuanto al contenido de esa pantalla de presentaci&oacute;n, puede ser cualquier cosa que se repita hasta que pulsemos una tecla. Por ejemplo, el &quot;cartel&quot; representativo del juego rebotando en los extremos de la pantalla. Conviene que la tecla que se pulse para salir no sea ESC, que es la que utilizamos en el juego, o puede ocurrir que salgamos de la pantalla de presentaci&oacute;n... pero tambi&eacute;n del juego, sin llegar a jugar...</p>


<p>Como siempre, todos los fuentes est&aacute;n en: <a href="http://code.google.com/p/fruityfrank"> code.google.com/p/fruityfrank</a></p>
<p align="right">(Volver al <a href="doc.html">&iacute;ndice</a>) </p>
</body>
</html>
